-
Notifications
You must be signed in to change notification settings - Fork 12.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Enable thumbv7a-pc-windows-msvc target build end to end in rust/master #60895
Conversation
Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @nikomatsakis (or someone else) soon. If any changes to this PR are deemed necessary, please add them as extra commits. This ensures that the reviewer can see what has changed since they last reviewed the code. Due to the way GitHub handles out-of-date commits, this should also make it reasonably obvious what issues have or haven't been addressed. Large or tricky changes may require several passes of review and changes. Please see the contribution instructions for more information. |
The job Click to expand the log.
I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact |
Undo the changes to bump compiler_builtins to hopefully have a good build. The version bump perhaps is worth another separate PR, @alexcrichton ? |
The job Click to expand the log.
I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact |
@chandde I think you should wrap this line to not exceed 80 columns. |
r=me with tidy passing, thanks @chandde! |
thanks for the comments, I'm out attending some school activities with my son and won't have access to a pc until tonight. Will address all the comments later and get back. |
The job Click to expand the log.
I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact |
No, the tidy error line is the 40th line of |
Now it's done done 759921e I misread the comment and thought it's about the cfg line |
I don't understand the codes, did you say you're ok with the change once tidy passing? who's gonna sign off & merge? @alexcrichton |
📌 Commit 759921e has been approved by |
Enable thumbv7a-pc-windows-msvc target build end to end in rust/master With this PR, plus another commit rust-lang/compiler-builtins@cf98161, I'm able to build the target thumbv7a-pc-windows-msvc successfully, and I'm able to use the stage2 artifacts to build arm32 projects. The commit in compiler_builtins is in release 0.1.14, the current cargo.lock in rust master still uses 0.1.12, so I bumped the compiler_builtins version in cargo.lock to 0.1.15 The command I used to build rust ``` c:\python27\python.exe x.py build --host x86_64-pc-windows-msvc --build x86_64-pc-windows-msvc --target thumbv7a-pc-windows-msvc --verbose ``` **Changes** 1. update cargolock to use compiler_builtins 0.1.15 2. handle libunwind in libtest for thumv7a the same as what we have for aarch64 3. in llvm codegen add a field in CodegenContext to carry the arch, so later in create_msvc_imps function, the arch can be used to check against "x86", instead of 32 pointer width. Apparently Thumv7a is handled differently than x86. **Background** I'm from Microsoft working on enabling Azure IoTEdge on ARM32 Windows IoTCore, Azure IoTEdge has a component called IoTEdged written in rust as a NT service running on Windows, so we need to enable rust on thumbv7a in order to have full IoTEdge. My colleague had made some heavy lifting and we've been using our private toolchain to build IoTEdged in our devops pipeline, because at that time we cannot build thumbv7a target end to end successfully. This change is a followup to enable the end to end build for thumbv7a-pc-windows-msvc target. **Next step** I'll submit more changes to have this target built nightly in rust/master, to achieve the same availability for aarch64-pc-windows-msvc, indexed here https://rust-lang.github.io/rustup-components-history/aarch64-pc-windows-msvc.html and can be manually installed. **Please do share what takes to make this happen, is there a formal process I need to follow\?**
Rollup of 6 pull requests Successful merges: - #60590 (Test interaction of unions with non-zero/niche-filling optimization) - #60745 (Perform constant propagation into terminators) - #60895 (Enable thumbv7a-pc-windows-msvc target build end to end in rust/master) - #60908 (Fix lints handling in rustdoc) - #60960 (Stop using gensyms in HIR lowering) - #60962 (Fix data types indication) Failed merges: r? @ghost
thanks for your review! now I'd like to have master branch build the target thumbv7a-pc-windows-msvc nightly, so user can install the target using rustup, without locally building the tool chain, is there instruction how to do it? ideally the same availability for aarch64-pc-windows-msvc here https://rust-lang.github.io/rustup-components-history/aarch64-pc-windows-msvc.html |
@chandde I think you'll basically want to grep around for aarch64-pc-windows-msvc in this repository and mirror its configuration, wherever aarch64 is mentioned thumbv7a probably also needs to be mentioned |
I'll add thumbv7a to whereever aarch64 has been mentioned, i.e. follow this search https://github.com/search?q=aarch64-pc-windows-msvc+user%3Arust-lang+repo%3Arust&type=Code Which exact file (from above search) that enables aarch64 for nightly build? once I make these changes locally, how do I verify? I'd expect I can verify things locally instead of keep pulling from next good nightly build.. Also where the builds happens? that I can take a look at build status, pipelines, steps, to get a better idea how a target is built |
Currently the aarch64 target is built on AppVeyor, configured here. |
With this PR, plus another commit rust-lang/compiler-builtins@cf98161, I'm able to build the target thumbv7a-pc-windows-msvc successfully, and I'm able to use the stage2 artifacts to build arm32 projects. The commit in compiler_builtins is in release 0.1.14, the current cargo.lock in rust master still uses 0.1.12, so I bumped the compiler_builtins version in cargo.lock to 0.1.15
The command I used to build rust
Changes
Background
I'm from Microsoft working on enabling Azure IoTEdge on ARM32 Windows IoTCore, Azure IoTEdge has a component called IoTEdged written in rust as a NT service running on Windows, so we need to enable rust on thumbv7a in order to have full IoTEdge. My colleague had made some heavy lifting and we've been using our private toolchain to build IoTEdged in our devops pipeline, because at that time we cannot build thumbv7a target end to end successfully. This change is a followup to enable the end to end build for thumbv7a-pc-windows-msvc target.
Next step
I'll submit more changes to have this target built nightly in rust/master, to achieve the same availability for aarch64-pc-windows-msvc, indexed here https://rust-lang.github.io/rustup-components-history/aarch64-pc-windows-msvc.html and can be manually installed. Please do share what takes to make this happen, is there a formal process I need to follow?